\section{Mutable Phase2 Model}
\label{sect:mutablephase}

Here we describe the methods on the mutable Phase2 Model.

\begin{itemize}
\item findUser(String userName)
\item listTags()
\item getTag(tagID)
\item listUsers()
\item getUser(userID)
\item listPrograms()
\item getProgram(programID)
\item listProposalsForTag(tagID)
\item listProposalsForUser(userID)
\item listProposalsForProgram(programID)
\item getProposal(propID)
\item listGroups(propID)
\item getGroup(groupID)
\item getHistoryItems(groupID)
\item listTargets(propID)
\item getTarget(targetID)
\item listObs(groupID)
\item getObs(obsID)
\item listAccounts(propID) 
\item getAccount(accountID)
\item listPeriods(accountID)
\item getPeriod(periodID)
\item listTransactions(periodID)
\item getTransaction(transID)
\item lockGroup(groupID, clientID): keyID
\item unlockGroup(groupID, keyID)
\item lockTarget(targetID, clientID): keyID
\item unlockTarget(targetID, keyID)
\item lockAccount(accountID, clientID): keyID
\item unlockAccount(accountID, keyID)
\item createUser(User): userID
\item updateUser(User)
\item deleteUser(userID)
\item createTag(Tag): tagID
\item updateTag(Tag)
\item deleteTag(tagID)
\item createProgram(Program): programID
\item updateProgram(Program)
\item deleteProgram(programID)
\item createProposal(Proposal): propID
\item updateProposal(Proposal)
\item deleteProposal(propID)
\item createAccount(Account): accountID
\item updateAccount(Account)
\item deleteAccount(accountID)
\item createPeriod(Period): periodID
\item updatePeriod(Period)
\item deletePeriod(periodID)
\item performTransaction(periodID, Transaction): tranID
\item createGroup(Group): groupID
\item updateGroup(Group)
\item deleteGroup(groupID)
\item appendHistory(groupID, HistoryItem): histID
\item createObs(Obs): obsID
\item updateObs(Obs)
\item deleteObs(obsID)
\item createTarget(Target): targetID
\item updateTarget(Target)
\item deleteTarget(targetID)
\end{itemize}
